package org.dromara.supplier.domain.bo;

import org.dromara.supplier.domain.Supplier;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

/**
 * 供应商业务对象 supplier
 *
 * @author Lion Li
 * @date 2025-06-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Supplier.class, reverseConvertGenerate = false)
public class SupplierBo extends BaseEntity {

    /**
     * 
     */
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 供应商名称
     */
    @NotBlank(message = "供应商名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String supplierName;

    /**
     * 工厂地点
     */
    @NotBlank(message = "工厂地点不能为空", groups = { AddGroup.class, EditGroup.class })
    private String factoryLocation;

    /**
     * 注册资本
     */
    private String registeredCapital;

    /**
     * 主要供货产品
     */
    @NotBlank(message = "主要供货产品不能为空", groups = { AddGroup.class, EditGroup.class })
    private String mainProducts;

    /**
     * 合作模式
     */
    @NotBlank(message = "合作模式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cooperationMode;

    /**
     * 风机类型
     */
    @NotBlank(message = "风机类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String fanType;

    /**
     * 企业属性
     */
    @NotBlank(message = "企业属性不能为空", groups = { AddGroup.class, EditGroup.class })
    private String enterpriseAttribute;

    /**
     * 联系人
     */
    @NotBlank(message = "联系人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contactPerson;

    /**
     * 联系电话
     */
    @NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contactPhone;

    /**
     * 负责人
     */
    @NotBlank(message = "负责人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String responsiblePerson;

    /**
     * 负责人联系电话
     */
    @NotBlank(message = "负责人联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
    private String responsiblePhone;

    /**
     * 详细地址
     */
    @NotBlank(message = "详细地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String detailedAddress;

    /**
     * 开票抬头
     */
    private String invoiceHead;

    /**
     * 单位税号
     */
    @NotBlank(message = "单位税号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitTaxNumber;

    /**
     * 法人姓名
     */
    @NotBlank(message = "法人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String legalPersonName;

    /**
     * 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unifiedSocialCreditCode;

    /**
     * 成立时间
     */
    private Date establishmentTime;

    /**
     * 所在行业
     */
    @NotBlank(message = "所在行业不能为空", groups = { AddGroup.class, EditGroup.class })
    private String industry;

    /**
     * 注册地址
     */
    @NotBlank(message = "注册地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String registrationAddress;

    /**
     * 资质名称
     */
    @NotBlank(message = "资质名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String qualificationName;

    /**
     * 资质文件
     */
    @NotBlank(message = "资质文件不能为空", groups = { AddGroup.class, EditGroup.class })
    private String qualificationFile;

    /**
     * 备注信息
     */
    private String remarks;


}
